<?php

/**
 * 获得根路径
 * @param string $path
 * @return string
 */
function basePath($path = ''){
    return __DIR__ . '/' .$path;
}

/**
 * 加载部分视图
 * 引入新的工具函数loadPartial
 * 这个函数的目的是封装require调用，使得加载视图文件变得更简单
 * 
 * 
 * @param string $name
 * @return void
 * 通过拼接 basePath 函数返回的路径和传入的视图文件名来构建完整的文件路径
 */
function loadPartial($name){
    // require basePath("views/partials/{$name}.php");
    $partialPath = basePath("views/partials/{$name}.php");

    if(file_exists($partialPath)){
        require $partialPath;
    }
    else{
        echo "{$name}部分视图不存在";
    }
}

/**
 * 
 * 加载视图
 * 创建loadView函数
 * loadView函数的设计目的是为了加载指定的视图文件，类似于loadPartial，
 * 但它用于加载位于views目录下的视图文件，而非partials子目录下的文件
 * 
 * @param string $name
 * @return void
 */
function loadView($name){
    $viewPath = basePath("views/{$name}.view.php");

    // inspectAndDie($name);
    // inspect($viewPath);

    if(file_exists($viewPath)){
        require $viewPath;
    }
    else{
        echo "{$path}视图不存在";
    }
}

/**
 * 检查某个值
 * 新增inspect函数
 * inspect函数的目的是提供一种简单的
 * 方法来输出变量的详细信息，包括类型和值，这对于开发过程中的调试非常有用
 * 
 * @param mixed $value
 * @return void
 * 
 */

 function inspect($value){
    echo '<pre>';
    var_dump($value);
    echo '<pre>';
 }

 /**
  * 新增inspectAndDie函数
  * inspectAndDie函数的目的是在输出一个或多个变量的详细信息后，立即终止PHP脚本
  * 的执行。这在调试时非常有用，尤其是当需要验证代码某一点上的变量状态，并确保没有后续的代码执行影响调试结果时
  * 
  * @param mixed $name
  * @return void
 */
function inspectAndDie($value){
    echo '<pre>';
    die(var_dump($value));
    echo '<pre>';
}
?>